---
id: app
title: 1. App 静态类
sidebar_label: 1. App 静态类
---

## 1.1 获取全局配置

```cs
var settings = App.Settings;
```

## 1.2 获取配置对象

```cs
// 获取 IConfiguration 对象
var configuration = App.Configuration;
var value = configuration["xxx:xxx"];

// 获取指定节点值并转成 T 类型
var data = App.GetConfig<TConfig>("key:key2");
```

## 1.3 获取环境对象

```cs
var webHostEnvironment = App.WebHostEnvironment;
```

## 1.4 获取项目所有程序集

```cs
var assemblies = App.Assemblies;
```

## 1.5 获取项目所有有效类型

```cs
var types = App.EffectiveTypes;
```

## 1.6 获取 `HttpContext`

```cs
var httpContext = App.HttpContext;
```

## 1.7 获取登录的 `User` 对象

```cs
var contextUser = App.User;

// 获取 `Jwt` 存储的信息
var userId = App.User?.FindFirstValue("键");
```

**注意引入 `System.Security.Claims` 命名空间**

## 1.8 获取服务提供器

```cs
var serviceProvider = App.ServiceProvider;
```

## 1.9 解析服务

```cs
var service = App.GetService<TService>();
var service2 = App.GetService(typeof(TService));

var service3 = App.GetRequiredService<TService>();
var service4 = App.GetRequiredService(typeof(TService));
```

## 1.10 获取选项配置

```cs
var options = App.GetOptions<TOptions>();
var options2 = App.GetOptionsMonitor<TOptions>();
var options3 = App.GetOptionsSnapshot<TOptions>();
```

## 1.11 打印数据到 `MiniProfiler`

```cs
App.PrintToMiniProfiler("分类", "状态", "要打印的消息");
```

## 1.12 获取应用名称

```cs
var applicationName = App.HostEnvironment.ApplicationName;
```

## 1.13 获取网站根目录

```cs
var webRootPath = App.HostEnvironment.ContentRootPath;
```

## 1.14 获取网站根目录 `wwwroot` 目录

```cs
var wwwroot = App.WebHostEnvironment.WebRootPath;
```

## 1.15 获取启动项目所在程序集

```cs
var webAssembly = Assembly.GetEntryAssembly();
```

## 1.16 获取启动项目 `bin` 目录

```cs
var binPath = AppContext.BaseDirectory;
```

## 1.17 获取环境变量名

```cs
var environmentName = App.HostEnvironment.EnvironmentName;
```

## 1.18 判断系统环境

```cs
// 判断是否开发环境
var isDevelopment = App.HostEnvironment.IsDevelopment();

// 判断是否生产环境
var isProduction = App.HostEnvironment.IsProduction();

// 判断是否 Stage 环境
var isStaging = App.HostEnvironment.IsStaging();

// 判断是否是特定环境，比如自定义测试环境
var isTest = App.HostEnvironment.IsEnvironment("TestEnvironment");
```

**注意，需引用 `Microsoft.Extensions.Hosting` 命名空间**

## 1.19 获取服务器信息

```cs
// 获取系统架构
var osArchitecture = RuntimeInformation.OSArchitecture; // => X64

// 获取系统名称
var osDescription = RuntimeInformation.OSDescription;   // => Windows 10 企业版

// 获取进程架构
var processArchitecture = RuntimeInformation.ProcessArchitecture;   // => X64

// 是否是64位操作系统
var is64BitOperatingSystem = Environment.Is64BitOperatingSystem;    // => True
```
